문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 객체 지향 프로그래밍/원칙 (문단 편집) ==== 부연설명 1 ==== 예를 들자면, [[스타크래프트]]의 유닛을 만든다고 치자. 당신은 이런저런 공통사항을 생각하며 메서드와 필드를 정의한다. 이 중엔 이동 메서드도 있다. 이동 메서드는 대상 위치를 인수로 받아 속도에 따라 대상 위치까지 유닛을 길찾기 인공지능을 사용해 이동한다. 하지만 잠깐 곰곰이 생각해보니 이러면 [[브루들링]] 같은 유닛의 기묘한 움직임[* 등속 이동을 하는 대부분의 유닛과 다르게, 일정 시간 이동하고 일정 시간 멈추는 방식으로 이동을 한다.]을 구현할 때 애로사항이 생길 것 같다. 당신은 고민하다가 이동 메서드에서 이동 패턴을 나타내는 코드를 별도의 메서드로 분리하고, 구현을 하위 클래스에 맡긴다. 그러면 브루들링 클래스에서는 이동 패턴 메서드만 재정의하면 유닛 클래스의 변경 없이 색다른 움직임을 보여줄 수 있다! '유닛' 클래스의 '이동' 메서드는 수정할 필요조차 없다(수정에 대해선 폐쇄). 그냥 브루들링 클래스의 이동 패턴 메서드만 재정의하면 그만인 것이다(확장에 대해선 개방).저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기